﻿using Rsd.Dudu;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Rsd.Faith.Fiscal
{
    /// <summary>
    /// 
    /// </summary>
    internal enum ErrorCodesType
    {
        /// <summary>
        /// 发票（住宅）{0}不存在。
        /// </summary>
        [System.ComponentModel.Description("发票（住宅）(发票号：{0})不存在。")]
        F00002 = 00002,
        /// <summary>
        /// 发票（电梯、消防）{0}不存在。
        /// </summary>
        [System.ComponentModel.Description("发票（电梯、消防）(发票号：{0})不存在。")]
        F00003 = 00003,

        /// <summary>
        /// 分账户不存在(房屋编号：{0})。
        /// </summary>
        [System.ComponentModel.Description("分账户不存在(房屋编号：{0})。")]
        F00004 = 00004,



        /// <summary>
        /// 房屋(房屋编号：{0})不存在。
        /// </summary>
        [System.ComponentModel.Description("房屋(房屋编号：{0})不存在。")]
        F00006 = 00006,

        /// <summary>
        /// 发票(发票号码：{0})入分户帐失败 ：{1}
        /// </summary>
        [System.ComponentModel.Description("发票(发票号码：{0})入分户帐失败 ：{1}")]
        F00007 = 00007,

        /// <summary>
        /// 发票(发票号码：{0})入分户帐失败 ：所属期不明确。
        /// </summary>
        [System.ComponentModel.Description("发票(发票号码：{0})入分户帐失败 ：所属期不明确。")]
        F00008 = 00008,

        /// <summary>
        /// 发票(发票号码：{0})无效 ：缴存金额必须大于0。
        /// </summary>
        [System.ComponentModel.Description("发票(发票号码：{0})无效 ：缴存金额必须大于0。")]
        F00009 = 00009,

        /// <summary>
        /// 票据信息的小区编号(编号：{0})与房屋信息的小区编号(编号：{1})不一致。
        /// </summary>
        [System.ComponentModel.Description("票据信息的小区编号(编号：{0})与房屋信息的小区编号(编号：{1})不一致。")]
        F00012 = 00012,

        /// <summary>
        /// 使用申请(编号：{0})不存在。
        /// </summary>
        [System.ComponentModel.Description("使用申请(编号：{0})不存在。")]
        F00013 = 00013,
        /// <summary>
        /// 划拨信息(编号：{0})不存在。
        /// </summary>
        [System.ComponentModel.Description("划拨信息(编号：{0})不存在。")]
        F00014 = 00014,

        /// <summary>
        /// 小区(编号：{0})不存在。
        /// </summary>
        [System.ComponentModel.Description("小区(编号：{0})不存在。")]
        F00015 = 00015,

        /// <summary>
        /// 房屋(房屋编号：{0})信息不完整：小区（{1}），楼栋（{2}），单元（{3}）。
        /// </summary>
        [System.ComponentModel.Description("房屋(房屋编号：{0})信息不完整：小区（{1}），楼栋（{2}），单元（{3}）。")]
        F00016 = 00016,


        /// <summary>
        /// 使用申请(单号：{0})不存在。
        /// </summary>
        [System.ComponentModel.Description("分摊使用申请(单号：{0})不存在。")]
        F00017 = 00017,
        /// <summary>
        /// 分摊(划拨编号：{0})入账失败,使用申请(单号：{1})不存在。
        /// </summary>
        [System.ComponentModel.Description("分摊(划拨编号：{0})入账失败,使用申请(单号：{1})不存在。")]
        F00018 = 00018,

        /// <summary>
        /// 分摊(申请单号：{0})入明细账，发生异常 ：{1}
        /// </summary>
        [System.ComponentModel.Description("分摊(申请单号：{0})入明细账，发生异常 ：{1}")]
        F00019 = 00019,


        /// <summary>
        /// 分摊(申请单号：{0})入分户账发生异常 ：{1}
        /// </summary>
        [System.ComponentModel.Description("分摊(申请单号：{0})入分户账，发生异常 ：{1}")]
        F00020 = 00020,

        /// <summary>
        /// 分摊(申请单号：{0})入分户账失败 ：小区(编号：{1})-房屋(房屋编号：{2})分户账户不存在。
        /// </summary>
        [System.ComponentModel.Description("分摊(申请单号：{0})入分户账失败 ：小区(编号：{1})-房屋(房屋编号：{2})分户账户不存在。")]
        F00021 = 00021,

        /// <summary>
        /// 分摊入账(申请单号：{0})失败 ：房屋(房屋编号：{1})不存在。
        /// </summary>
        [System.ComponentModel.Description("分摊(申请单号：{0})入账失败 ：房屋(房屋编号：{1})不存在。")]
        F00022 = 00022,

        /// <summary>
        /// 发票（发票号：{0}）缴存入账失败：小区(编号：{1})不存在。
        /// </summary>
        [System.ComponentModel.Description("发票（发票号：{0}）缴存入账失败：小区(编号：{1})不存在。")]
        F00023 = 00023,

        /// <summary>
        /// 划拨（申请单号：{0}）入账失败：小区(编号：{1})不存在。
        /// </summary>
        [System.ComponentModel.Description("划拨（申请单号：{0}）入账失败：小区(编号：{1})不存在。")]
        F00024 = 00024,

        /// <summary>
        /// 发票(发票号码：{0})入{1}期分户帐失败 ：{2}
        /// </summary>
        [System.ComponentModel.Description("发票(发票号码：{0})入{1}期分户帐失败 ：{2}")]
        F00025 = 00025,

        /// <summary>
        /// 使用申请(申请单号：{0})从统筹账户拨款，不需要分摊。
        /// </summary>
        [System.ComponentModel.Description("使用申请(申请单号：{0})从统筹账户拨款，不需要分摊。")]
        F00026 = 00026,

        /// <summary>
        /// 使用申请(申请单号：{0})入总账失败，发生异常 ：{1}
        /// </summary>
        [System.ComponentModel.Description("使用申请(申请单号：{0})入总账失败，发生异常 ：{1}")]
        F00030 = 00030,

        /// <summary>
        /// 分摊(划拨编号：{0})入账失败,分摊房屋小区编号({1}) 和 申请小区编号({2})不一致。
        /// </summary>
        [System.ComponentModel.Description("分摊(划拨编号：{0})入账失败,分摊房屋小区编号({1}) 和 申请小区编号({2})不一致。")]
        F00031 = 00031,

        /// <summary>
        /// 创建分户账户失败\r\n小区编号:{0},房屋编号:{1}。
        /// </summary>
        [System.ComponentModel.Description("创建分户账户失败\r\n小区编号:{0},房屋编号:{1}。")]
        F00032 = 00032,

        /// <summary>
        ///创建单元账户失败\r\n小区编号:{0},楼栋号:{1},单元号:{2}。
        /// </summary>
        [System.ComponentModel.Description("创建单元账户失败\r\n小区编号:{0},楼栋号:{1},单元号:{2}。")]
        F00033 = 00033,

        /// <summary>
        /// 创建楼栋账户失败\r\n小区编号:{0},楼栋号:{1}。
        /// </summary>
        [System.ComponentModel.Description("创建楼栋账户失败\r\n小区编号:{0},楼栋号:{1}。")]
        F00034 = 00034,

        /// <summary>
        /// 创建小区账户失败\r\n小区编号:{0}。
        /// </summary>
        [System.ComponentModel.Description("创建小区账户失败\r\n小区编号:{0}。")]
        F00035 = 00035,

        /// <summary>
        /// 划拨（申请单号：{0}）无分摊数据\r\n无法入账。
        /// </summary>
        [System.ComponentModel.Description("划拨（申请单号：{0}）无分摊数据\r\n无法入账。")]
        F00036 = 00036,
        /// <summary>
        /// 分摊(申请单号：{0})核查失败\r\n发生异常 ：{1}
        /// </summary>
        [System.ComponentModel.Description("分摊(申请单号：{0})核查失败\r\n发生异常 ：{1}")]
        F00037 = 00037,
    }

    /// <summary>
    /// 
    /// </summary>
    public static class ExtendMethod
    {

       
        /// <summary>
        /// 
        /// </summary>
        /// <param name="code"></param>
        /// <param name="args"></param>
        internal static void SubmitError(this ErrorCodesType code, params String[] args)
        { 
            ServicesContainer.GetService<Rsd.Dudu.Exception.IExceptionService>(null).Submit(code ,   Rsd.Dudu.Exception.OperationType.CommitAndError,args);
        }
    }
}
